#ifndef UNZIPPROGRAMFILE_H
#define UNZIPPROGRAMFILE_H
#include <QFile>
#include <QDir>
#include <QIODevice>
#include <QFileInfo>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <errno.h>
#include <fcntl.h>

# include <unistd.h>
# include <utime.h>

#include "3rdLib/minizip/unzip.h"


class UnzipProgramFile
{
public:
    UnzipProgramFile();
    void doExtractProgramZipFile(const QString &path, const QString &outPath);

private:
    int do_extract(unzFile uf);
    bool do_extract_currentfile(unzFile uf);
//    int do_extract_currentfile(unzFile uf,
//                               const int* popt_extract_without_path,
//                               int* popt_overwrite,
//                               const char* password);
    int mymkdir(const char* dirname);
    void change_file_date(const char *filename,
                          uLong dosdate,
                          tm_unz tmu_date);
    int makedir (const char *newdir);
    bool writeFile(const QString &filePath,
                   const QByteArray &content,
                   QString &error);
    bool isAllDirOrFile(const QString &path, const bool &isAllDir);

    QString m_filePath;
};

#endif // UNZIPPROGRAMFILE_H
